home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer (Italian) 47 / PC Gamer IT CD 47 2-2.iso / Nerf / NERFDEMO.EXE / System / NerfWeapon.u / RoxInBarrel_GuidedFrisbe_ScriptText.TextBuffer < prev    next >
Unknown  |  1999-10-21  |  10.2 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was not able to be converted.
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
100% file data default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 00 00 00 00 00 00 00 | 6d a2 01 2f 2f 3d 3d 3d |........|m..//===|
|00000010| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000020| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000030| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000040| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000050| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 0d 0a 2f 2f 20 47 |========|==..// G|
|00000060| 75 69 64 65 64 46 72 69 | 73 62 65 2e 0d 0a 2f 2f |uidedFri|sbe...//|
|00000070| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000080| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 0d 0a 63 |========|=====..c|
|000000c0| 6c 61 73 73 20 47 75 69 | 64 65 64 46 72 69 73 62 |lass Gui|dedFrisb|
|000000d0| 65 20 65 78 70 61 6e 64 | 73 20 73 69 64 65 5f 63 |e expand|s side_c|
|000000e0| 64 3b 0d 0a 0d 0a 76 61 | 72 20 50 61 77 6e 20 47 |d;....va|r Pawn G|
|000000f0| 75 69 64 65 72 3b 0d 0a | 76 61 72 20 72 6f 74 61 |uider;..|var rota|
|00000100| 74 6f 72 20 4f 6c 64 47 | 75 69 64 65 72 52 6f 74 |tor OldG|uiderRot|
|00000110| 61 74 69 6f 6e 2c 20 47 | 75 69 64 65 64 52 6f 74 |ation, G|uidedRot|
|00000120| 61 74 69 6f 6e 3b 0d 0a | 76 61 72 20 66 6c 6f 61 |ation;..|var floa|
|00000130| 74 20 43 75 72 72 65 6e | 74 54 69 6d 65 53 74 61 |t Curren|tTimeSta|
|00000140| 6d 70 2c 20 4c 61 73 74 | 55 70 64 61 74 65 54 69 |mp, Last|UpdateTi|
|00000150| 6d 65 2c 43 6c 69 65 6e | 74 42 75 66 66 65 72 3b |me,Clien|tBuffer;|
|00000160| 0d 0a 76 61 72 20 62 6f | 6f 6c 20 62 55 70 64 61 |..var bo|ol bUpda|
|00000170| 74 65 50 6f 73 69 74 69 | 6f 6e 3b 0d 0a 76 61 72 |tePositi|on;..var|
|00000180| 20 62 6f 6f 6c 20 62 44 | 65 73 74 72 6f 79 65 64 | bool bD|estroyed|
|00000190| 3b 0d 0a 0d 0a 76 61 72 | 20 53 61 76 65 64 4d 6f |;....var| SavedMo|
|000001a0| 76 65 20 53 61 76 65 64 | 4d 6f 76 65 73 3b 0d 0a |ve Saved|Moves;..|
|000001b0| 76 61 72 20 53 61 76 65 | 64 4d 6f 76 65 20 46 72 |var Save|dMove Fr|
|000001c0| 65 65 4d 6f 76 65 73 3b | 0d 0a 0d 0a 76 61 72 20 |eeMoves;|....var |
|000001d0| 76 65 63 74 6f 72 20 52 | 65 61 6c 4c 6f 63 61 74 |vector R|ealLocat|
|000001e0| 69 6f 6e 2c 20 52 65 61 | 6c 56 65 6c 6f 63 69 74 |ion, Rea|lVelocit|
|000001f0| 79 3b 0d 0a 76 61 72 20 | 62 6f 6f 6c 20 62 43 61 |y;..var |bool bCa|
|00000200| 6e 48 69 74 4f 77 6e 65 | 72 3b 0d 0a 0d 0a 0d 0a |nHitOwne|r;......|
|00000210| 72 65 70 6c 69 63 61 74 | 69 6f 6e 0d 0a 7b 0d 0a |replicat|ion..{..|
|00000220| 09 2f 2f 20 54 68 69 6e | 67 73 20 74 68 65 20 73 |.// Thin|gs the s|
|00000230| 65 72 76 65 72 20 73 68 | 6f 75 6c 64 20 73 65 6e |erver sh|ould sen|
|00000240| 64 20 74 6f 20 74 68 65 | 20 63 6c 69 65 6e 74 2e |d to the| client.|
|00000250| 0d 0a 09 75 6e 72 65 6c | 69 61 62 6c 65 20 69 66 |...unrel|iable if|
|00000260| 28 20 52 6f 6c 65 3d 3d | 52 4f 4c 45 5f 41 75 74 |( Role==|ROLE_Aut|
|00000270| 68 6f 72 69 74 79 20 29 | 0d 0a 09 09 43 6c 69 65 |hority )|....Clie|
|00000280| 6e 74 41 64 6a 75 73 74 | 50 6f 73 69 74 69 6f 6e |ntAdjust|Position|
|00000290| 2c 20 62 44 65 73 74 72 | 6f 79 65 64 3b 0d 0a 09 |, bDestr|oyed;...|
|000002a0| 75 6e 72 65 6c 69 61 62 | 6c 65 20 69 66 20 28 20 |unreliab|le if ( |
|000002b0| 52 6f 6c 65 3d 3d 52 4f | 4c 45 5f 41 75 74 68 6f |Role==RO|LE_Autho|
|000002c0| 72 69 74 79 20 26 26 20 | 62 4e 65 74 4f 77 6e 65 |rity && |bNetOwne|
|000002d0| 72 20 26 26 20 62 4e 65 | 74 49 6e 69 74 69 61 6c |r && bNe|tInitial|
|000002e0| 20 29 0d 0a 09 09 47 75 | 69 64 65 64 52 6f 74 61 | )....Gu|idedRota|
|000002f0| 74 69 6f 6e 2c 20 4f 6c | 64 47 75 69 64 65 72 52 |tion, Ol|dGuiderR|
|00000300| 6f 74 61 74 69 6f 6e 3b | 0d 0a 09 75 6e 72 65 6c |otation;|...unrel|
|00000310| 69 61 62 6c 65 20 69 66 | 28 20 52 6f 6c 65 3d 3d |iable if|( Role==|
|00000320| 52 4f 4c 45 5f 41 75 74 | 68 6f 72 69 74 79 20 26 |ROLE_Aut|hority &|
|00000330| 26 20 21 62 4e 65 74 4f | 77 6e 65 72 20 29 0d 0a |& !bNetO|wner )..|
|00000340| 09 09 52 65 61 6c 4c 6f | 63 61 74 69 6f 6e 2c 20 |..RealLo|cation, |
|00000350| 52 65 61 6c 56 65 6c 6f | 63 69 74 79 3b 0d 0a 09 |RealVelo|city;...|
|00000360| 75 6e 72 65 6c 69 61 62 | 6c 65 20 69 66 28 20 52 |unreliab|le if( R|
|00000370| 6f 6c 65 3d 3d 52 4f 4c | 45 5f 41 75 74 6f 6e 6f |ole==ROL|E_Autono|
|00000380| 6d 6f 75 73 50 72 6f 78 | 79 20 29 0d 0a 09 09 53 |mousProx|y )....S|
|00000390| 65 72 76 65 72 4d 6f 76 | 65 3b 0d 0a 7d 0d 0a 0d |erverMov|e;..}...|
|000003a0| 0a 73 69 6d 75 6c 61 74 | 65 64 20 66 75 6e 63 74 |.simulat|ed funct|
|000003b0| 69 6f 6e 20 44 65 73 74 | 72 6f 79 65 64 28 29 0d |ion Dest|royed().|
|000003c0| 0a 7b 0d 0a 09 6c 6f 63 | 61 6c 20 73 69 64 65 77 |.{...loc|al sidew|
|000003d0| 69 6e 64 20 57 3b 0d 0a | 0d 0a 09 62 44 65 73 74 |ind W;..|...bDest|
|000003e0| 72 6f 79 65 64 20 3d 20 | 74 72 75 65 3b 0d 0a 09 |royed = |true;...|
|000003f0| 69 66 20 28 20 28 50 6c | 61 79 65 72 50 61 77 6e |if ( (Pl|ayerPawn|
|00000400| 28 47 75 69 64 65 72 29 | 20 21 3d 20 4e 6f 6e 65 |(Guider)| != None|
|00000410| 29 20 29 0d 0a 09 09 50 | 6c 61 79 65 72 50 61 77 |) )....P|layerPaw|
|00000420| 6e 28 47 75 69 64 65 72 | 29 2e 56 69 65 77 54 61 |n(Guider|).ViewTa|
|00000430| 72 67 65 74 20 3d 20 4e | 6f 6e 65 3b 0d 0a 0d 0a |rget = N|one;....|
|00000440| 09 57 68 69 6c 65 20 28 | 20 46 72 65 65 4d 6f 76 |.While (| FreeMov|
|00000450| 65 73 20 21 3d 20 4e 6f | 6e 65 20 29 0d 0a 09 7b |es != No|ne )...{|
|00000460| 0d 0a 09 09 46 72 65 65 | 4d 6f 76 65 73 2e 44 65 |....Free|Moves.De|
|00000470| 73 74 72 6f 79 28 29 3b | 0d 0a 09 09 46 72 65 65 |stroy();|....Free|
|00000480| 4d 6f 76 65 73 20 3d 20 | 46 72 65 65 4d 6f 76 65 |Moves = |FreeMove|
|00000490| 73 2e 4e 65 78 74 4d 6f | 76 65 3b 0d 0a 09 7d 0d |s.NextMo|ve;...}.|
|000004a0| 0a 0d 0a 09 57 68 69 6c | 65 20 28 20 53 61 76 65 |....Whil|e ( Save|
|000004b0| 64 4d 6f 76 65 73 20 21 | 3d 20 4e 6f 6e 65 20 29 |dMoves !|= None )|
|000004c0| 0d 0a 09 7b 0d 0a 09 09 | 53 61 76 65 64 4d 6f 76 |...{....|SavedMov|
|000004d0| 65 73 2e 44 65 73 74 72 | 6f 79 28 29 3b 0d 0a 09 |es.Destr|oy();...|
|000004e0| 09 53 61 76 65 64 4d 6f | 76 65 73 20 3d 20 53 61 |.SavedMo|ves = Sa|
|000004f0| 76 65 64 4d 6f 76 65 73 | 2e 4e 65 78 74 4d 6f 76 |vedMoves|.NextMov|
|00000500| 65 3b 0d 0a 09 7d 0d 0a | 0d 0a 09 69 66 20 28 20 |e;...}..|...if ( |
|00000510| 28 47 75 69 64 65 72 20 | 21 3d 20 4e 6f 6e 65 29 |(Guider |!= None)|
|00000520| 20 26 26 20 28 4c 65 76 | 65 6c 2e 4e 65 74 4d 6f | && (Lev|el.NetMo|
|00000530| 64 65 20 21 3d 20 4e 4d | 5f 43 6c 69 65 6e 74 29 |de != NM|_Client)|
|00000540| 20 29 0d 0a 09 7b 0d 0a | 09 09 57 20 3d 20 73 69 | )...{..|..W = si|
|00000550| 64 65 77 69 6e 64 28 47 | 75 69 64 65 72 2e 46 69 |dewind(G|uider.Fi|
|00000560| 6e 64 49 6e 76 65 6e 74 | 6f 72 79 54 79 70 65 28 |ndInvent|oryType(|
|00000570| 63 6c 61 73 73 27 73 69 | 64 65 77 69 6e 64 27 29 |class'si|dewind')|
|00000580| 29 3b 0d 0a 09 09 69 66 | 20 28 20 57 20 21 3d 20 |);....if| ( W != |
|00000590| 4e 6f 6e 65 20 29 0d 0a | 09 09 7b 0d 0a 09 09 09 |None )..|..{.....|
|000005a0| 57 2e 47 46 72 69 73 62 | 65 20 3d 20 4e 6f 6e 65 |W.GFrisb|e = None|
|000005b0| 3b 0d 0a 09 09 09 57 2e | 47 6f 74 6f 53 74 61 74 |;.....W.|GotoStat|
|000005c0| 65 28 27 46 69 6e 69 73 | 68 69 6e 67 27 29 3b 0d |e('Finis|hing');.|
|000005d0| 0a 09 09 7d 0d 0a 09 7d | 0d 0a 09 53 75 70 65 72 |...}...}|...Super|
|000005e0| 2e 44 65 73 74 72 6f 79 | 65 64 28 29 3b 0d 0a 7d |.Destroy|ed();..}|
|000005f0| 0d 0a 0d 0a 73 69 6d 75 | 6c 61 74 65 64 20 66 75 |....simu|lated fu|
|00000600| 6e 63 74 69 6f 6e 20 54 | 69 63 6b 28 66 6c 6f 61 |nction T|ick(floa|
|00000610| 74 20 44 65 6c 74 61 54 | 69 6d 65 29 0d 0a 7b 0d |t DeltaT|ime)..{.|
|00000620| 0a 09 6c 6f 63 61 6c 20 | 69 6e 74 20 44 65 6c 74 |..local |int Delt|
|00000630| 61 59 61 77 2c 20 44 65 | 6c 74 61 50 69 74 63 68 |aYaw, De|ltaPitch|
|00000640| 3b 0d 0a 09 6c 6f 63 61 | 6c 20 69 6e 74 20 59 61 |;...loca|l int Ya|
|00000650| 77 44 69 66 66 2c 20 50 | 69 74 63 68 44 69 66 66 |wDiff, P|itchDiff|
|00000660| 3b 0d 0a 09 6c 6f 63 61 | 6c 20 53 61 76 65 64 4d |;...loca|l SavedM|
|00000670| 6f 76 65 20 4e 65 77 4d | 6f 76 65 3b 0d 0a 0d 0a |ove NewM|ove;....|
|00000680| 09 53 75 70 65 72 2e 54 | 69 63 6b 28 44 65 6c 74 |.Super.T|ick(Delt|
|00000690| 61 54 69 6d 65 29 3b 0d | 0a 09 69 66 20 28 20 4c |aTime);.|..if ( L|
|000006a0| 65 76 65 6c 2e 4e 65 74 | 4d 6f 64 65 20 3d 3d 20 |evel.Net|Mode == |
|000006b0| 4e 4d 5f 43 6c 69 65 6e | 74 20 29 0d 0a 09 7b 0d |NM_Clien|t )...{.|
|000006c0| 0a 09 09 69 66 20 28 20 | 28 50 6c 61 79 65 72 50 |...if ( |(PlayerP|
|000006d0| 61 77 6e 28 49 6e 73 74 | 69 67 61 74 6f 72 29 20 |awn(Inst|igator) |
|000006e0| 21 3d 20 4e 6f 6e 65 29 | 20 26 26 20 28 56 69 65 |!= None)| && (Vie|
|000006f0| 77 50 6f 72 74 28 50 6c | 61 79 65 72 50 61 77 6e |wPort(Pl|ayerPawn|
|00000700| 28 49 6e 73 74 69 67 61 | 74 6f 72 29 2e 50 6c 61 |(Instiga|tor).Pla|
|00000710| 79 65 72 29 20 21 3d 20 | 4e 6f 6e 65 29 20 29 0d |yer) != |None) ).|
|00000720| 0a 09 09 7b 0d 0a 09 09 | 09 47 75 69 64 65 72 20 |...{....|.Guider |
|00000730| 3d 20 49 6e 73 74 69 67 | 61 74 6f 72 3b 0d 0a 09 |= Instig|ator;...|
|00000740| 09 09 69 66 20 28 20 62 | 44 65 73 74 72 6f 79 65 |..if ( b|Destroye|
|00000750| 64 20 7c 7c 20 28 49 6e | 73 74 69 67 61 74 6f 72 |d || (In|stigator|
|00000760| 2e 68 65 61 6c 74 68 20 | 3c 20 30 29 20 29 0d 0a |.health |< 0) )..|
|00000770| 09 09 09 7b 0d 0a 09 09 | 09 09 50 6c 61 79 65 72 |...{....|..Player|
|00000780| 50 61 77 6e 28 49 6e 73 | 74 69 67 61 74 6f 72 29 |Pawn(Ins|tigator)|
|00000790| 2e 56 69 65 77 54 61 72 | 67 65 74 20 3d 20 4e 6f |.ViewTar|get = No|
|000007a0| 6e 65 3b 0d 0a 09 09 09 | 09 44 65 73 74 72 6f 79 |ne;.....|.Destroy|
|000007b0| 28 29 3b 0d 0a 09 09 09 | 09 69 66 20 28 20 49 6e |();.....|.if ( In|
|000007c0| 73 74 69 67 61 74 6f 72 | 2e 57 65 61 70 6f 6e 2e |stigator|.Weapon.|
|000007d0| 49 73 41 28 27 73 69 64 | 65 77 69 6e 64 27 29 20 |IsA('sid|ewind') |
|000007e0| 29 0d 0a 09 09 09 09 09 | 73 69 64 65 77 69 6e 64 |).......|sidewind|
|000007f0| 28 49 6e 73 74 69 67 61 | 74 6f 72 2e 57 65 61 70 |(Instiga|tor.Weap|
|00000800| 6f 6e 29 2e 62 47 75 69 | 64 69 6e 67 20 3d 20 66 |on).bGui|ding = f|
|00000810| 61 6c 73 65 3b 0d 0a 09 | 09 09 09 72 65 74 75 72 |alse;...|...retur|
|00000820| 6e 3b 0d 0a 09 09 09 7d | 0d 0a 09 09 09 50 6c 61 |n;.....}|.....Pla|
|00000830| 79 65 72 50 61 77 6e 28 | 49 6e 73 74 69 67 61 74 |yerPawn(|Instigat|
|00000840| 6f 72 29 2e 56 69 65 77 | 54 61 72 67 65 74 20 3d |or).View|Target =|
|00000850| 20 73 65 6c 66 3b 0d 0a | 09 09 09 69 66 20 28 20 | self;..|...if ( |
|00000860| 49 6e 73 74 69 67 61 74 | 6f 72 2e 57 65 61 70 6f |Instigat|or.Weapo|
|00000870| 6e 2e 49 73 41 28 27 73 | 69 64 65 77 69 6e 64 27 |n.IsA('s|idewind'|
|00000880| 29 20 29 0d 0a 09 09 09 | 7b 0d 0a 09 09 09 09 73 |) ).....|{......s|
|00000890| 69 64 65 77 69 6e 64 28 | 49 6e 73 74 69 67 61 74 |idewind(|Instigat|
|000008a0| 6f 72 2e 57 65 61 70 6f | 6e 29 2e 47 46 72 69 73 |or.Weapo|n).GFris|
|000008b0| 62 65 20 3d 20 73 65 6c | 66 3b 0d 0a 09 09 09 09 |be = sel|f;......|
|000008c0| 73 69 64 65 77 69 6e 64 | 28 49 6e 73 74 69 67 61 |sidewind|(Instiga|
|000008d0| 74 6f 72 2e 57 65 61 70 | 6f 6e 29 2e 62 47 75 69 |tor.Weap|on).bGui|
|000008e0| 64 69 6e 67 20 3d 20 74 | 72 75 65 3b 0d 0a 09 09 |ding = t|rue;....|
|000008f0| 09 7d 0d 0a 09 09 7d 0d | 0a 09 09 65 6c 73 65 0d |.}....}.|...else.|
|00000900| 0a 09 09 7b 0d 0a 09 09 | 09 69 66 20 28 20 52 65 |...{....|.if ( Re|
|00000910| 61 6c 4c 6f 63 61 74 69 | 6f 6e 20 21 3d 20 76 65 |alLocati|on != ve|
|00000920| 63 74 28 30 2c 30 2c 30 | 29 20 29 0d 0a 09 09 09 |ct(0,0,0|) ).....|
|00000930| 7b 0d 0a 09 09 09 09 53 | 65 74 4c 6f 63 61 74 69 |{......S|etLocati|
|00000940| 6f 6e 28 52 65 61 6c 4c | 6f 63 61 74 69 6f 6e 29 |on(RealL|ocation)|
|00000950| 3b 0d 0a 09 09 09 09 52 | 65 61 6c 4c 6f 63 61 74 |;......R|ealLocat|
|00000960| 69 6f 6e 20 3d 20 76 65 | 63 74 28 30 2c 30 2c 30 |ion = ve|ct(0,0,0|
|00000970| 29 3b 0d 0a 09 09 09 7d | 0d 0a 09 09 09 69 66 20 |);.....}|.....if |
|00000980| 28 20 52 65 61 6c 56 65 | 6c 6f 63 69 74 79 20 21 |( RealVe|locity !|
|00000990| 3d 20 76 65 63 74 28 30 | 2c 30 2c 30 29 20 29 0d |= vect(0|,0,0) ).|
|000009a0| 0a 09 09 09 7b 0d 0a 09 | 09 09 09 56 65 6c 6f 63 |....{...|...Veloc|
|000009b0| 69 74 79 20 3d 20 52 65 | 61 6c 56 65 6c 6f 63 69 |ity = Re|alVeloci|
|000009c0| 74 79 3b 0d 0a 09 09 09 | 09 53 65 74 52 6f 74 61 |ty;.....|.SetRota|
|000009d0| 74 69 6f 6e 28 72 6f 74 | 61 74 6f 72 28 56 65 6c |tion(rot|ator(Vel|
|000009e0| 6f 63 69 74 79 29 29 3b | 0d 0a 09 09 09 09 52 65 |ocity));|......Re|
|000009f0| 61 6c 56 65 6c 6f 63 69 | 74 79 20 3d 20 76 65 63 |alVeloci|ty = vec|
|00000a00| 74 28 30 2c 30 2c 30 29 | 3b 0d 0a 09 09 09 7d 0d |t(0,0,0)|;.....}.|
|00000a10| 0a 09 09 09 72 65 74 75 | 72 6e 3b 0d 0a 09 09 7d |....retu|rn;....}|
|00000a20| 0d 0a 09 7d 0d 0a 09 65 | 6c 73 65 20 69 66 20 28 |...}...e|lse if (|
|00000a30| 20 28 4c 65 76 65 6c 2e | 4e 65 74 4d 6f 64 65 20 | (Level.|NetMode |
|00000a40| 21 3d 20 4e 4d 5f 53 74 | 61 6e 64 61 6c 6f 6e 65 |!= NM_St|andalone|
|00000a50| 29 20 26 26 20 28 52 65 | 6d 6f 74 65 52 6f 6c 65 |) && (Re|moteRole|
|00000a60| 20 3d 3d 20 52 4f 4c 45 | 5f 41 75 74 6f 6e 6f 6d | == ROLE|_Autonom|
|00000a70| 6f 75 73 50 72 6f 78 79 | 29 20 29 20 0d 0a 09 09 |ousProxy|) ) ....|
|00000a80| 09 72 65 74 75 72 6e 3b | 0d 0a 09 2f 2f 20 69 66 |.return;|...// if|
|00000a90| 20 73 65 72 76 65 72 20 | 75 70 64 61 74 65 64 20 | server |updated |
|00000aa0| 63 6c 69 65 6e 74 20 70 | 6f 73 69 74 69 6f 6e 2c |client p|osition,|
|00000ab0| 20 63 6c 69 65 6e 74 20 | 6e 65 65 64 73 20 74 6f | client |needs to|
|00000ac0| 20 72 65 70 6c 61 79 20 | 6d 6f 76 65 73 20 61 66 | replay |moves af|
|00000ad0| 74 65 72 20 74 68 65 20 | 75 70 64 61 74 65 0d 0a |ter the |update..|
|00000ae0| 09 69 66 20 28 20 62 55 | 70 64 61 74 65 50 6f 73 |.if ( bU|pdatePos|
|00000af0| 69 74 69 6f 6e 20 29 0d | 0a 09 09 43 6c 69 65 6e |ition ).|...Clien|
|00000b00| 74 55 70 64 61 74 65 50 | 6f 73 69 74 69 6f 6e 28 |tUpdateP|osition(|
|00000b10| 29 3b 0d 0a 0d 0a 09 44 | 65 6c 74 61 59 61 77 20 |);.....D|eltaYaw |
|00000b20| 3d 20 28 47 75 69 64 65 | 72 2e 56 69 65 77 52 6f |= (Guide|r.ViewRo|
|00000b30| 74 61 74 69 6f 6e 2e 59 | 61 77 20 26 20 36 35 35 |tation.Y|aw & 655|
|00000b40| 33 35 29 20 2d 20 28 4f | 6c 64 47 75 69 64 65 72 |35) - (O|ldGuider|
|00000b50| 52 6f 74 61 74 69 6f 6e | 2e 59 61 77 20 26 20 36 |Rotation|.Yaw & 6|
|00000b60| 35 35 33 35 29 3b 0d 0a | 09 44 65 6c 74 61 50 69 |5535);..|.DeltaPi|
|00000b70| 74 63 68 20 3d 20 28 47 | 75 69 64 65 72 2e 56 69 |tch = (G|uider.Vi|
|00000b80| 65 77 52 6f 74 61 74 69 | 6f 6e 2e 50 69 74 63 68 |ewRotati|on.Pitch|
|00000b90| 20 26 20 36 35 35 33 35 | 29 20 2d 20 28 4f 6c 64 | & 65535|) - (Old|
|00000ba0| 47 75 69 64 65 72 52 6f | 74 61 74 69 6f 6e 2e 50 |GuiderRo|tation.P|
|00000bb0| 69 74 63 68 20 26 20 36 | 35 35 33 35 29 3b 0d 0a |itch & 6|5535);..|
|00000bc0| 09 69 66 20 28 20 44 65 | 6c 74 61 50 69 74 63 68 |.if ( De|ltaPitch|
|00000bd0| 20 3c 20 2d 33 32 37 36 | 38 20 29 0d 0a 09 09 44 | < -3276|8 )....D|
|00000be0| 65 6c 74 61 50 69 74 63 | 68 20 2b 3d 20 36 35 35 |eltaPitc|h += 655|
|00000bf0| 33 36 3b 0d 0a 09 65 6c | 73 65 20 69 66 20 28 20 |36;...el|se if ( |
|00000c00| 44 65 6c 74 61 50 69 74 | 63 68 20 3e 20 33 32 37 |DeltaPit|ch > 327|
|00000c10| 36 38 20 29 0d 0a 09 09 | 44 65 6c 74 61 50 69 74 |68 )....|DeltaPit|
|00000c20| 63 68 20 2d 3d 20 36 35 | 35 33 36 3b 0d 0a 09 69 |ch -= 65|536;...i|
|00000c30| 66 20 28 20 44 65 6c 74 | 61 59 61 77 20 3c 20 2d |f ( Delt|aYaw < -|
|00000c40| 33 32 37 36 38 20 29 0d | 0a 09 09 44 65 6c 74 61 |32768 ).|...Delta|
|00000c50| 59 61 77 20 2b 3d 20 36 | 35 35 33 36 3b 0d 0a 09 |Yaw += 6|5536;...|
|00000c60| 65 6c 73 65 20 69 66 20 | 28 20 44 65 6c 74 61 59 |else if |( DeltaY|
|00000c70| 61 77 20 3e 20 33 32 37 | 36 38 20 29 0d 0a 09 09 |aw > 327|68 )....|
|00000c80| 44 65 6c 74 61 59 61 77 | 20 2d 3d 20 36 35 35 33 |DeltaYaw| -= 6553|
|00000c90| 36 3b 0d 0a 0d 0a 09 59 | 61 77 44 69 66 66 20 3d |6;.....Y|awDiff =|
|00000ca0| 20 28 52 6f 74 61 74 69 | 6f 6e 2e 59 61 77 20 26 | (Rotati|on.Yaw &|
|00000cb0| 20 36 35 35 33 35 29 20 | 2d 20 28 47 75 69 64 65 | 65535) |- (Guide|
|00000cc0| 64 52 6f 74 61 74 69 6f | 6e 2e 59 61 77 20 26 20 |dRotatio|n.Yaw & |
|00000cd0| 36 35 35 33 35 29 20 2d | 20 44 65 6c 74 61 59 61 |65535) -| DeltaYa|
|00000ce0| 77 3b 0d 0a 09 69 66 20 | 28 20 44 65 6c 74 61 59 |w;...if |( DeltaY|
|00000cf0| 61 77 20 3c 20 30 20 29 | 0d 0a 09 7b 0d 0a 09 09 |aw < 0 )|...{....|
|00000d00| 69 66 20 28 20 28 28 59 | 61 77 44 69 66 66 20 3e |if ( ((Y|awDiff >|
|00000d10| 20 30 29 20 26 26 20 28 | 59 61 77 44 69 66 66 20 | 0) && (|YawDiff |
|00000d20| 3c 20 31 36 33 38 34 29 | 29 20 7c 7c 20 28 59 61 |< 16384)|) || (Ya|
|00000d30| 77 44 69 66 66 20 3c 20 | 2d 34 39 31 35 32 29 20 |wDiff < |-49152) |
|00000d40| 29 0d 0a 09 09 09 47 75 | 69 64 65 64 52 6f 74 61 |).....Gu|idedRota|
|00000d50| 74 69 6f 6e 2e 59 61 77 | 20 2b 3d 20 44 65 6c 74 |tion.Yaw| += Delt|
|00000d60| 61 59 61 77 3b 0d 0a 09 | 7d 09 0d 0a 09 65 6c 73 |aYaw;...|}....els|
|00000d70| 65 20 69 66 20 28 20 28 | 28 59 61 77 44 69 66 66 |e if ( (|(YawDiff|
|00000d80| 20 3c 20 30 29 20 26 26 | 20 28 59 61 77 44 69 66 | < 0) &&| (YawDif|
|00000d90| 66 20 3e 20 2d 31 36 33 | 38 34 29 29 20 7c 7c 20 |f > -163|84)) || |
|00000da0| 28 59 61 77 44 69 66 66 | 20 3e 20 34 39 31 35 32 |(YawDiff| > 49152|
|00000db0| 29 20 29 0d 0a 09 09 47 | 75 69 64 65 64 52 6f 74 |) )....G|uidedRot|
|00000dc0| 61 74 69 6f 6e 2e 59 61 | 77 20 2b 3d 20 44 65 6c |ation.Ya|w += Del|
|00000dd0| 74 61 59 61 77 3b 0d 0a | 0d 0a 09 47 75 69 64 65 |taYaw;..|...Guide|
|00000de0| 64 52 6f 74 61 74 69 6f | 6e 2e 50 69 74 63 68 20 |dRotatio|n.Pitch |
|00000df0| 2b 3d 20 44 65 6c 74 61 | 50 69 74 63 68 3b 0d 0a |+= Delta|Pitch;..|
|00000e00| 09 4f 6c 64 47 75 69 64 | 65 72 52 6f 74 61 74 69 |.OldGuid|erRotati|
|00000e10| 6f 6e 20 3d 20 47 75 69 | 64 65 72 2e 56 69 65 77 |on = Gui|der.View|
|00000e20| 52 6f 74 61 74 69 6f 6e | 3b 0d 0a 09 69 66 20 28 |Rotation|;...if (|
|00000e30| 20 52 6f 6c 65 20 3d 3d | 20 52 4f 4c 45 5f 41 75 | Role ==| ROLE_Au|
|00000e40| 74 6f 6e 6f 6d 6f 75 73 | 50 72 6f 78 79 20 29 0d |tonomous|Proxy ).|
|00000e50| 0a 09 7b 0d 0a 09 09 2f | 2f 20 53 65 6e 64 20 74 |..{..../|/ Send t|
|00000e60| 68 65 20 6d 6f 76 65 20 | 74 6f 20 74 68 65 20 73 |he move |to the s|
|00000e70| 65 72 76 65 72 0d 0a 09 | 09 2f 2f 20 73 6b 69 70 |erver...|.// skip|
|00000e80| 20 6d 6f 76 65 20 69 66 | 20 74 6f 6f 20 73 6f 6f | move if| too soo|
|00000e90| 6e 0d 0a 09 09 69 66 20 | 28 20 43 6c 69 65 6e 74 |n....if |( Client|
|00000ea0| 42 75 66 66 65 72 20 3c | 20 30 20 29 0d 0a 09 09 |Buffer <| 0 )....|
|00000eb0| 7b 0d 0a 09 09 09 43 6c | 69 65 6e 74 42 75 66 66 |{.....Cl|ientBuff|
|00000ec0| 65 72 20 2b 3d 20 44 65 | 6c 74 61 54 69 6d 65 3b |er += De|ltaTime;|
|00000ed0| 0d 0a 09 09 09 4d 6f 76 | 65 44 69 73 63 28 44 65 |.....Mov|eDisc(De|
|00000ee0| 6c 74 61 54 69 6d 65 2c | 20 56 65 6c 6f 63 69 74 |ltaTime,| Velocit|
|00000ef0| 79 2c 20 47 75 69 64 65 | 64 52 6f 74 61 74 69 6f |y, Guide|dRotatio|
|00000f00| 6e 29 3b 0d 0a 09 09 09 | 72 65 74 75 72 6e 3b 0d |n);.....|return;.|
|00000f10| 0a 09 09 7d 0d 0a 09 09 | 65 6c 73 65 0d 0a 09 09 |...}....|else....|
|00000f20| 09 43 6c 69 65 6e 74 42 | 75 66 66 65 72 20 3d 20 |.ClientB|uffer = |
|00000f30| 43 6c 69 65 6e 74 42 75 | 66 66 65 72 20 2b 20 44 |ClientBu|ffer + D|
|00000f40| 65 6c 74 61 54 69 6d 65 | 20 2d 20 38 30 2e 30 2f |eltaTime| - 80.0/|
|00000f50| 50 6c 61 79 65 72 50 61 | 77 6e 28 49 6e 73 74 69 |PlayerPa|wn(Insti|
|00000f60| 67 61 74 6f 72 29 2e 50 | 6c 61 79 65 72 2e 43 75 |gator).P|layer.Cu|
|00000f70| 72 72 65 6e 74 4e 65 74 | 53 70 65 65 64 3b 0d 0a |rrentNet|Speed;..|
|00000f80| 0d 0a 09 09 2f 2f 20 49 | 27 6d 20 20 61 20 63 6c |....// I|'m a cl|
|00000f90| 69 65 6e 74 2c 20 73 6f | 20 49 27 6c 6c 20 73 61 |ient, so| I'll sa|
|00000fa0| 76 65 20 6d 79 20 6d 6f | 76 65 73 20 69 6e 20 63 |ve my mo|ves in c|
|00000fb0| 61 73 65 20 49 20 6e 65 | 65 64 20 74 6f 20 72 65 |ase I ne|ed to re|
|00000fc0| 70 6c 61 79 20 74 68 65 | 6d 0d 0a 09 09 2f 2f 20 |play the|m....// |
|00000fd0| 47 65 74 20 61 20 53 61 | 76 65 64 4d 6f 76 65 20 |Get a Sa|vedMove |
|00000fe0| 61 63 74 6f 72 20 74 6f | 20 73 74 6f 72 65 20 74 |actor to| store t|
|00000ff0| 68 65 20 6d 6f 76 65 6d | 65 6e 74 20 69 6e 2e 0d |he movem|ent in..|
|00001000| 0a 09 09 69 66 20 28 20 | 53 61 76 65 64 4d 6f 76 |...if ( |SavedMov|
|00001010| 65 73 20 3d 3d 20 4e 6f | 6e 65 20 29 0d 0a 09 09 |es == No|ne )....|
|00001020| 7b 0d 0a 09 09 09 53 61 | 76 65 64 4d 6f 76 65 73 |{.....Sa|vedMoves|
|00001030| 20 3d 20 47 65 74 46 72 | 65 65 4d 6f 76 65 28 29 | = GetFr|eeMove()|
|00001040| 3b 0d 0a 09 09 09 4e 65 | 77 4d 6f 76 65 20 3d 20 |;.....Ne|wMove = |
|00001050| 53 61 76 65 64 4d 6f 76 | 65 73 3b 0d 0a 09 09 7d |SavedMov|es;....}|
|00001060| 0d 0a 09 09 65 6c 73 65 | 0d 0a 09 09 7b 0d 0a 09 |....else|....{...|
|00001070| 09 09 4e 65 77 4d 6f 76 | 65 20 3d 20 53 61 76 65 |..NewMov|e = Save|
|00001080| 64 4d 6f 76 65 73 3b 0d | 0a 09 09 09 77 68 69 6c |dMoves;.|....whil|
|00001090| 65 20 28 20 4e 65 77 4d | 6f 76 65 2e 4e 65 78 74 |e ( NewM|ove.Next|
|000010a0| 4d 6f 76 65 20 21 3d 20 | 4e 6f 6e 65 20 29 0d 0a |Move != |None )..|
|000010b0| 09 09 09 09 4e 65 77 4d | 6f 76 65 20 3d 20 4e 65 |....NewM|ove = Ne|
|000010c0| 77 4d 6f 76 65 2e 4e 65 | 78 74 4d 6f 76 65 3b 0d |wMove.Ne|xtMove;.|
|000010d0| 0a 09 09 09 4e 65 77 4d | 6f 76 65 2e 4e 65 78 74 |....NewM|ove.Next|
|000010e0| 4d 6f 76 65 20 3d 20 47 | 65 74 46 72 65 65 4d 6f |Move = G|etFreeMo|
|000010f0| 76 65 28 29 3b 0d 0a 09 | 09 09 4e 65 77 4d 6f 76 |ve();...|..NewMov|
|00001100| 65 20 3d 20 4e 65 77 4d | 6f 76 65 2e 4e 65 78 74 |e = NewM|ove.Next|
|00001110| 4d 6f 76 65 3b 0d 0a 09 | 09 7d 0d 0a 0d 0a 09 09 |Move;...|.}......|
|00001120| 4e 65 77 4d 6f 76 65 2e | 54 69 6d 65 53 74 61 6d |NewMove.|TimeStam|
|00001130| 70 20 3d 20 4c 65 76 65 | 6c 2e 54 69 6d 65 53 65 |p = Leve|l.TimeSe|
|00001140| 63 6f 6e 64 73 3b 0d 0a | 09 09 4e 65 77 4d 6f 76 |conds;..|..NewMov|
|00001150| 65 2e 44 65 6c 74 61 20 | 3d 20 44 65 6c 74 61 54 |e.Delta |= DeltaT|
|00001160| 69 6d 65 3b 0d 0a 09 09 | 4e 65 77 4d 6f 76 65 2e |ime;....|NewMove.|
|00001170| 56 65 6c 6f 63 69 74 79 | 20 3d 20 56 65 6c 6f 63 |Velocity| = Veloc|
|00001180| 69 74 79 3b 0d 0a 09 09 | 4e 65 77 4d 6f 76 65 2e |ity;....|NewMove.|
|00001190| 53 65 74 52 6f 74 61 74 | 69 6f 6e 28 47 75 69 64 |SetRotat|ion(Guid|
|000011a0| 65 64 52 6f 74 61 74 69 | 6f 6e 29 3b 0d 0a 0d 0a |edRotati|on);....|
|000011b0| 09 09 4d 6f 76 65 44 69 | 73 63 28 44 65 6c 74 61 |..MoveDi|sc(Delta|
|000011c0| 54 69 6d 65 2c 20 56 65 | 6c 6f 63 69 74 79 2c 20 |Time, Ve|locity, |
|000011d0| 47 75 69 64 65 64 52 6f | 74 61 74 69 6f 6e 29 3b |GuidedRo|tation);|
|000011e0| 0d 0a 09 09 53 65 72 76 | 65 72 4d 6f 76 65 28 4c |....Serv|erMove(L|
|000011f0| 65 76 65 6c 2e 54 69 6d | 65 53 65 63 6f 6e 64 73 |evel.Tim|eSeconds|
|00001200| 2c 20 4c 6f 63 61 74 69 | 6f 6e 2c 20 4e 65 77 4d |, Locati|on, NewM|
|00001210| 6f 76 65 2e 52 6f 74 61 | 74 69 6f 6e 2e 50 69 74 |ove.Rota|tion.Pit|
|00001220| 63 68 2c 20 4e 65 77 4d | 6f 76 65 2e 52 6f 74 61 |ch, NewM|ove.Rota|
|00001230| 74 69 6f 6e 2e 59 61 77 | 29 3b 0d 0a 09 09 72 65 |tion.Yaw|);....re|
|00001240| 74 75 72 6e 3b 0d 0a 09 | 7d 0d 0a 09 4d 6f 76 65 |turn;...|}...Move|
|00001250| 44 69 73 63 28 44 65 6c | 74 61 54 69 6d 65 2c 20 |Disc(Del|taTime, |
|00001260| 56 65 6c 6f 63 69 74 79 | 2c 20 47 75 69 64 65 64 |Velocity|, Guided|
|00001270| 52 6f 74 61 74 69 6f 6e | 29 3b 0d 0a 7d 0d 0a 0d |Rotation|);..}...|
|00001280| 0a 2f 2f 20 53 65 72 76 | 65 72 20 73 65 6e 64 73 |.// Serv|er sends|
|00001290| 20 43 6c 69 65 6e 74 41 | 64 6a 75 73 74 50 6f 73 | ClientA|djustPos|
|000012a0| 69 74 69 6f 6e 20 74 6f | 20 74 68 65 20 63 6c 69 |ition to| the cli|
|000012b0| 65 6e 74 20 74 6f 20 61 | 64 6a 75 73 74 20 74 68 |ent to a|djust th|
|000012c0| 65 20 77 61 72 68 65 61 | 64 20 70 6f 73 69 74 69 |e warhea|d positi|
|000012d0| 6f 6e 20 6f 6e 20 74 68 | 65 20 63 6c 69 65 6e 74 |on on th|e client|
|000012e0| 20 73 69 64 65 20 77 68 | 65 6e 20 74 68 65 20 65 | side wh|en the e|
|000012f0| 72 72 6f 72 0d 0a 2f 2f | 20 69 73 20 65 78 63 65 |rror..//| is exce|
|00001300| 73 73 69 76 65 0d 0a 73 | 69 6d 75 6c 61 74 65 64 |ssive..s|imulated|
|00001310| 20 66 75 6e 63 74 69 6f | 6e 20 43 6c 69 65 6e 74 | functio|n Client|
|00001320| 41 64 6a 75 73 74 50 6f | 73 69 74 69 6f 6e 0d 0a |AdjustPo|sition..|
|00001330| 28 0d 0a 09 66 6c 6f 61 | 74 20 54 69 6d 65 53 74 |(...floa|t TimeSt|
|00001340| 61 6d 70 2c 20 0d 0a 09 | 66 6c 6f 61 74 20 4e 65 |amp, ...|float Ne|
|00001350| 77 4c 6f 63 58 2c 20 0d | 0a 09 66 6c 6f 61 74 20 |wLocX, .|..float |
|00001360| 4e 65 77 4c 6f 63 59 2c | 20 0d 0a 09 66 6c 6f 61 |NewLocY,| ...floa|
|00001370| 74 20 4e 65 77 4c 6f 63 | 5a 2c 20 0d 0a 09 66 6c |t NewLoc|Z, ...fl|
|00001380| 6f 61 74 20 4e 65 77 56 | 65 6c 58 2c 20 0d 0a 09 |oat NewV|elX, ...|
|00001390| 66 6c 6f 61 74 20 4e 65 | 77 56 65 6c 59 2c 20 0d |float Ne|wVelY, .|
|000013a0| 0a 09 66 6c 6f 61 74 20 | 4e 65 77 56 65 6c 5a 0d |..float |NewVelZ.|
|000013b0| 0a 29 0d 0a 7b 0d 0a 09 | 6c 6f 63 61 6c 20 76 65 |.)..{...|local ve|
|000013c0| 63 74 6f 72 20 4e 65 77 | 4c 6f 63 61 74 69 6f 6e |ctor New|Location|
|000013d0| 3b 0d 0a 0d 0a 09 69 66 | 20 28 20 43 75 72 72 65 |;.....if| ( Curre|
|000013e0| 6e 74 54 69 6d 65 53 74 | 61 6d 70 20 3e 20 54 69 |ntTimeSt|amp > Ti|
|000013f0| 6d 65 53 74 61 6d 70 20 | 29 0d 0a 09 09 72 65 74 |meStamp |)....ret|
|00001400| 75 72 6e 3b 0d 0a 09 43 | 75 72 72 65 6e 74 54 69 |urn;...C|urrentTi|
|00001410| 6d 65 53 74 61 6d 70 20 | 3d 20 54 69 6d 65 53 74 |meStamp |= TimeSt|
|00001420| 61 6d 70 3b 0d 0a 0d 0a | 09 4e 65 77 4c 6f 63 61 |amp;....|.NewLoca|
|00001430| 74 69 6f 6e 2e 58 20 3d | 20 4e 65 77 4c 6f 63 58 |tion.X =| NewLocX|
|00001440| 3b 0d 0a 09 4e 65 77 4c | 6f 63 61 74 69 6f 6e 2e |;...NewL|ocation.|
|00001450| 59 20 3d 20 4e 65 77 4c | 6f 63 59 3b 0d 0a 09 4e |Y = NewL|ocY;...N|
|00001460| 65 77 4c 6f 63 61 74 69 | 6f 6e 2e 5a 20 3d 20 4e |ewLocati|on.Z = N|
|00001470| 65 77 4c 6f 63 5a 3b 0d | 0a 09 56 65 6c 6f 63 69 |ewLocZ;.|..Veloci|
|00001480| 74 79 2e 58 20 3d 20 4e | 65 77 56 65 6c 58 3b 0d |ty.X = N|ewVelX;.|
|00001490| 0a 09 56 65 6c 6f 63 69 | 74 79 2e 59 20 3d 20 4e |..Veloci|ty.Y = N|
|000014a0| 65 77 56 65 6c 59 3b 0d | 0a 09 56 65 6c 6f 63 69 |ewVelY;.|..Veloci|
|000014b0| 74 79 2e 5a 20 3d 20 4e | 65 77 56 65 6c 5a 3b 0d |ty.Z = N|ewVelZ;.|
|000014c0| 0a 0d 0a 09 53 65 74 4c | 6f 63 61 74 69 6f 6e 28 |....SetL|ocation(|
|000014d0| 4e 65 77 4c 6f 63 61 74 | 69 6f 6e 29 3b 0d 0a 0d |NewLocat|ion);...|
|000014e0| 0a 09 62 55 70 64 61 74 | 65 50 6f 73 69 74 69 6f |..bUpdat|ePositio|
|000014f0| 6e 20 3d 20 74 72 75 65 | 3b 0d 0a 7d 0d 0a 0d 0a |n = true|;..}....|
|00001500| 2f 2f 20 43 6c 69 65 6e | 74 20 63 61 6c 6c 73 20 |// Clien|t calls |
|00001510| 74 68 69 73 20 74 6f 20 | 72 65 70 6c 61 79 20 6d |this to |replay m|
|00001520| 6f 76 65 73 20 61 66 74 | 65 72 20 67 65 74 74 69 |oves aft|er getti|
|00001530| 6e 67 20 69 74 73 20 70 | 6f 73 69 74 69 6f 6e 20 |ng its p|osition |
|00001540| 75 70 64 61 74 65 64 20 | 62 79 20 74 68 65 20 73 |updated |by the s|
|00001550| 65 72 76 65 72 0d 0a 73 | 69 6d 75 6c 61 74 65 64 |erver..s|imulated|
|00001560| 20 66 75 6e 63 74 69 6f | 6e 20 43 6c 69 65 6e 74 | functio|n Client|
|00001570| 55 70 64 61 74 65 50 6f | 73 69 74 69 6f 6e 28 29 |UpdatePo|sition()|
|00001580| 0d 0a 7b 0d 0a 09 6c 6f | 63 61 6c 20 53 61 76 65 |..{...lo|cal Save|
|00001590| 64 4d 6f 76 65 20 43 75 | 72 72 65 6e 74 4d 6f 76 |dMove Cu|rrentMov|
|000015a0| 65 3b 0d 0a 09 6c 6f 63 | 61 6c 20 69 6e 74 20 72 |e;...loc|al int r|
|000015b0| 65 61 6c 62 52 75 6e 2c | 20 72 65 61 6c 62 44 75 |ealbRun,| realbDu|
|000015c0| 63 6b 3b 0d 0a 09 6c 6f | 63 61 6c 20 62 6f 6f 6c |ck;...lo|cal bool|
|000015d0| 20 62 52 65 61 6c 4a 75 | 6d 70 3b 0d 0a 0d 0a 09 | bRealJu|mp;.....|
|000015e0| 62 55 70 64 61 74 65 50 | 6f 73 69 74 69 6f 6e 20 |bUpdateP|osition |
|000015f0| 3d 20 66 61 6c 73 65 3b | 0d 0a 09 43 75 72 72 65 |= false;|...Curre|
|00001600| 6e 74 4d 6f 76 65 20 3d | 20 53 61 76 65 64 4d 6f |ntMove =| SavedMo|
|00001610| 76 65 73 3b 0d 0a 09 77 | 68 69 6c 65 20 28 20 43 |ves;...w|hile ( C|
|00001620| 75 72 72 65 6e 74 4d 6f | 76 65 20 21 3d 20 4e 6f |urrentMo|ve != No|
|00001630| 6e 65 20 29 0d 0a 09 7b | 0d 0a 09 09 69 66 20 28 |ne )...{|....if (|
|00001640| 20 43 75 72 72 65 6e 74 | 4d 6f 76 65 2e 54 69 6d | Current|Move.Tim|
|00001650| 65 53 74 61 6d 70 20 3c | 3d 20 43 75 72 72 65 6e |eStamp <|= Curren|
|00001660| 74 54 69 6d 65 53 74 61 | 6d 70 20 29 0d 0a 09 09 |tTimeSta|mp )....|
|00001670| 7b 0d 0a 09 09 09 53 61 | 76 65 64 4d 6f 76 65 73 |{.....Sa|vedMoves|
|00001680| 20 3d 20 43 75 72 72 65 | 6e 74 4d 6f 76 65 2e 4e | = Curre|ntMove.N|
|00001690| 65 78 74 4d 6f 76 65 3b | 0d 0a 09 09 09 43 75 72 |extMove;|.....Cur|
|000016a0| 72 65 6e 74 4d 6f 76 65 | 2e 4e 65 78 74 4d 6f 76 |rentMove|.NextMov|
|000016b0| 65 20 3d 20 46 72 65 65 | 4d 6f 76 65 73 3b 0d 0a |e = Free|Moves;..|
|000016c0| 09 09 09 46 72 65 65 4d | 6f 76 65 73 20 3d 20 43 |...FreeM|oves = C|
|000016d0| 75 72 72 65 6e 74 4d 6f | 76 65 3b 0d 0a 09 09 09 |urrentMo|ve;.....|
|000016e0| 46 72 65 65 4d 6f 76 65 | 73 2e 43 6c 65 61 72 28 |FreeMove|s.Clear(|
|000016f0| 29 3b 0d 0a 09 09 09 43 | 75 72 72 65 6e 74 4d 6f |);.....C|urrentMo|
|00001700| 76 65 20 3d 20 53 61 76 | 65 64 4d 6f 76 65 73 3b |ve = Sav|edMoves;|
|00001710| 0d 0a 09 09 7d 0d 0a 09 | 09 65 6c 73 65 0d 0a 09 |....}...|.else...|
|00001720| 09 7b 0d 0a 09 09 09 4d | 6f 76 65 44 69 73 63 28 |.{.....M|oveDisc(|
|00001730| 43 75 72 72 65 6e 74 4d | 6f 76 65 2e 44 65 6c 74 |CurrentM|ove.Delt|
|00001740| 61 2c 20 43 75 72 72 65 | 6e 74 4d 6f 76 65 2e 56 |a, Curre|ntMove.V|
|00001750| 65 6c 6f 63 69 74 79 2c | 20 43 75 72 72 65 6e 74 |elocity,| Current|
|00001760| 4d 6f 76 65 2e 52 6f 74 | 61 74 69 6f 6e 29 3b 0d |Move.Rot|ation);.|
|00001770| 0a 09 09 09 43 75 72 72 | 65 6e 74 4d 6f 76 65 20 |....Curr|entMove |
|00001780| 3d 20 43 75 72 72 65 6e | 74 4d 6f 76 65 2e 4e 65 |= Curren|tMove.Ne|
|00001790| 78 74 4d 6f 76 65 3b 0d | 0a 09 09 7d 0d 0a 09 7d |xtMove;.|...}...}|
|000017a0| 0d 0a 7d 0d 0a 09 0d 0a | 2f 2f 20 73 65 72 76 65 |..}.....|// serve|
|000017b0| 72 20 6d 6f 76 65 73 20 | 74 68 65 20 72 6f 63 6b |r moves |the rock|
|000017c0| 65 74 20 62 61 73 65 64 | 20 6f 6e 20 63 6c 69 65 |et based| on clie|
|000017d0| 6e 74 73 20 69 6e 70 75 | 74 2c 20 61 6e 64 20 63 |nts inpu|t, and c|
|000017e0| 6f 6d 70 61 72 65 73 20 | 74 68 65 20 72 65 73 75 |ompares |the resu|
|000017f0| 6c 74 61 6e 74 20 6c 6f | 63 61 74 69 6f 6e 20 74 |ltant lo|cation t|
|00001800| 6f 20 74 68 65 20 63 6c | 69 65 6e 74 27 73 20 76 |o the cl|ient's v|
|00001810| 69 65 77 20 6f 66 20 74 | 68 65 20 6c 6f 63 61 74 |iew of t|he locat|
|00001820| 69 6f 6e 0d 0a 66 75 6e | 63 74 69 6f 6e 20 53 65 |ion..fun|ction Se|
|00001830| 72 76 65 72 4d 6f 76 65 | 28 66 6c 6f 61 74 20 54 |rverMove|(float T|
|00001840| 69 6d 65 53 74 61 6d 70 | 2c 20 76 65 63 74 6f 72 |imeStamp|, vector|
|00001850| 20 43 6c 69 65 6e 74 4c | 6f 63 2c 20 69 6e 74 20 | ClientL|oc, int |
|00001860| 50 69 74 63 68 2c 20 69 | 6e 74 20 59 61 77 29 0d |Pitch, i|nt Yaw).|
|00001870| 0a 7b 0d 0a 09 6c 6f 63 | 61 6c 20 66 6c 6f 61 74 |.{...loc|al float|
|00001880| 20 43 6c 69 65 6e 74 45 | 72 72 2c 20 44 65 6c 74 | ClientE|rr, Delt|
|00001890| 61 54 69 6d 65 3b 0d 0a | 09 6c 6f 63 61 6c 20 76 |aTime;..|.local v|
|000018a0| 65 63 74 6f 72 20 4c 6f | 63 44 69 66 66 3b 0d 0a |ector Lo|cDiff;..|
|000018b0| 0d 0a 09 69 66 20 28 20 | 43 75 72 72 65 6e 74 54 |...if ( |CurrentT|
|000018c0| 69 6d 65 53 74 61 6d 70 | 20 3e 3d 20 54 69 6d 65 |imeStamp| >= Time|
|000018d0| 53 74 61 6d 70 20 29 0d | 0a 09 09 72 65 74 75 72 |Stamp ).|...retur|
|000018e0| 6e 3b 0d 0a 0d 0a 09 69 | 66 20 28 20 43 75 72 72 |n;.....i|f ( Curr|
|000018f0| 65 6e 74 54 69 6d 65 53 | 74 61 6d 70 20 3e 20 30 |entTimeS|tamp > 0|
|00001900| 20 29 0d 0a 09 09 44 65 | 6c 74 61 54 69 6d 65 20 | )....De|ltaTime |
|00001910| 3d 20 54 69 6d 65 53 74 | 61 6d 70 20 2d 20 43 75 |= TimeSt|amp - Cu|
|00001920| 72 72 65 6e 74 54 69 6d | 65 53 74 61 6d 70 3b 0d |rrentTim|eStamp;.|
|00001930| 0a 09 43 75 72 72 65 6e | 74 54 69 6d 65 53 74 61 |..Curren|tTimeSta|
|00001940| 6d 70 20 3d 20 54 69 6d | 65 53 74 61 6d 70 3b 0d |mp = Tim|eStamp;.|
|00001950| 0a 09 47 75 69 64 65 64 | 52 6f 74 61 74 69 6f 6e |..Guided|Rotation|
|00001960| 2e 50 69 74 63 68 20 3d | 20 50 69 74 63 68 3b 0d |.Pitch =| Pitch;.|
|00001970| 0a 09 47 75 69 64 65 64 | 52 6f 74 61 74 69 6f 6e |..Guided|Rotation|
|00001980| 2e 59 61 77 20 3d 20 59 | 61 77 3b 0d 0a 09 69 66 |.Yaw = Y|aw;...if|
|00001990| 20 28 20 44 65 6c 74 61 | 54 69 6d 65 20 3e 20 30 | ( Delta|Time > 0|
|000019a0| 20 29 09 0d 0a 09 09 4d | 6f 76 65 44 69 73 63 28 | ).....M|oveDisc(|
|000019b0| 44 65 6c 74 61 54 69 6d | 65 2c 20 56 65 6c 6f 63 |DeltaTim|e, Veloc|
|000019c0| 69 74 79 2c 20 47 75 69 | 64 65 64 52 6f 74 61 74 |ity, Gui|dedRotat|
|000019d0| 69 6f 6e 29 3b 0d 0a 09 | 69 66 20 28 20 4c 65 76 |ion);...|if ( Lev|
|000019e0| 65 6c 2e 54 69 6d 65 53 | 65 63 6f 6e 64 73 20 2d |el.TimeS|econds -|
|000019f0| 20 4c 61 73 74 55 70 64 | 61 74 65 54 69 6d 65 20 | LastUpd|ateTime |
|00001a00| 3e 20 30 2e 33 20 29 0d | 0a 09 7b 0d 0a 09 09 43 |> 0.3 ).|..{....C|
|00001a10| 6c 69 65 6e 74 45 72 72 | 20 3d 20 31 30 30 30 30 |lientErr| = 10000|
|00001a20| 3b 0d 0a 09 7d 0d 0a 09 | 65 6c 73 65 20 69 66 20 |;...}...|else if |
|00001a30| 28 20 4c 65 76 65 6c 2e | 54 69 6d 65 53 65 63 6f |( Level.|TimeSeco|
|00001a40| 6e 64 73 20 2d 20 4c 61 | 73 74 55 70 64 61 74 65 |nds - La|stUpdate|
|00001a50| 54 69 6d 65 20 3e 20 30 | 2e 30 37 20 29 0d 0a 09 |Time > 0|.07 )...|
|00001a60| 7b 0d 0a 09 09 4c 6f 63 | 44 69 66 66 20 3d 20 4c |{....Loc|Diff = L|
|00001a70| 6f 63 61 74 69 6f 6e 20 | 2d 20 43 6c 69 65 6e 74 |ocation |- Client|
|00001a80| 4c 6f 63 3b 0d 0a 09 09 | 43 6c 69 65 6e 74 45 72 |Loc;....|ClientEr|
|00001a90| 72 20 3d 20 4c 6f 63 44 | 69 66 66 20 44 6f 74 20 |r = LocD|iff Dot |
|00001aa0| 4c 6f 63 44 69 66 66 3b | 0d 0a 09 7d 0d 0a 0d 0a |LocDiff;|...}....|
|00001ab0| 09 2f 2f 20 49 66 20 63 | 6c 69 65 6e 74 20 68 61 |.// If c|lient ha|
|00001ac0| 73 20 61 63 63 75 6d 75 | 6c 61 74 65 64 20 61 20 |s accumu|lated a |
|00001ad0| 6e 6f 74 69 63 65 61 62 | 6c 65 20 70 6f 73 69 74 |noticeab|le posit|
|00001ae0| 69 6f 6e 61 6c 20 65 72 | 72 6f 72 2c 20 63 6f 72 |ional er|ror, cor|
|00001af0| 72 65 63 74 20 68 69 6d | 2e 0d 0a 09 69 66 20 28 |rect him|....if (|
|00001b00| 20 43 6c 69 65 6e 74 45 | 72 72 20 3e 20 33 20 29 | ClientE|rr > 3 )|
|00001b10| 0d 0a 09 7b 0d 0a 09 09 | 4c 61 73 74 55 70 64 61 |...{....|LastUpda|
|00001b20| 74 65 54 69 6d 65 20 3d | 20 4c 65 76 65 6c 2e 54 |teTime =| Level.T|
|00001b30| 69 6d 65 53 65 63 6f 6e | 64 73 3b 0d 0a 09 09 43 |imeSecon|ds;....C|
|00001b40| 6c 69 65 6e 74 41 64 6a | 75 73 74 50 6f 73 69 74 |lientAdj|ustPosit|
|00001b50| 69 6f 6e 28 54 69 6d 65 | 53 74 61 6d 70 2c 20 4c |ion(Time|Stamp, L|
|00001b60| 6f 63 61 74 69 6f 6e 2e | 58 2c 20 4c 6f 63 61 74 |ocation.|X, Locat|
|00001b70| 69 6f 6e 2e 59 2c 20 4c | 6f 63 61 74 69 6f 6e 2e |ion.Y, L|ocation.|
|00001b80| 5a 2c 20 56 65 6c 6f 63 | 69 74 79 2e 58 2c 20 56 |Z, Veloc|ity.X, V|
|00001b90| 65 6c 6f 63 69 74 79 2e | 59 2c 20 56 65 6c 6f 63 |elocity.|Y, Veloc|
|00001ba0| 69 74 79 2e 5a 29 3b 0d | 0a 09 7d 0d 0a 0d 0a 09 |ity.Z);.|..}.....|
|00001bb0| 52 65 61 6c 4c 6f 63 61 | 74 69 6f 6e 20 3d 20 4c |RealLoca|tion = L|
|00001bc0| 6f 63 61 74 69 6f 6e 3b | 0d 0a 09 52 65 61 6c 56 |ocation;|...RealV|
|00001bd0| 65 6c 6f 63 69 74 79 20 | 3d 20 56 65 6c 6f 63 69 |elocity |= Veloci|
|00001be0| 74 79 3b 0d 0a 7d 0d 0a | 0d 0a 73 69 6d 75 6c 61 |ty;..}..|..simula|
|00001bf0| 74 65 64 20 66 75 6e 63 | 74 69 6f 6e 20 4d 6f 76 |ted func|tion Mov|
|00001c00| 65 44 69 73 63 28 66 6c | 6f 61 74 20 44 65 6c 74 |eDisc(fl|oat Delt|
|00001c10| 61 54 69 6d 65 2c 20 76 | 65 63 74 6f 72 20 43 75 |aTime, v|ector Cu|
|00001c20| 72 72 65 6e 74 56 65 6c | 6f 63 69 74 79 2c 20 72 |rrentVel|ocity, r|
|00001c30| 6f 74 61 74 6f 72 20 47 | 75 69 64 65 52 6f 74 61 |otator G|uideRota|
|00001c40| 74 69 6f 6e 20 29 0d 0a | 7b 0d 0a 09 6c 6f 63 61 |tion )..|{...loca|
|00001c50| 6c 20 69 6e 74 20 4f 6c | 64 52 6f 6c 6c 2c 20 52 |l int Ol|dRoll, R|
|00001c60| 6f 6c 6c 4d 61 67 3b 0d | 0a 09 6c 6f 63 61 6c 20 |ollMag;.|..local |
|00001c70| 72 6f 74 61 74 6f 72 20 | 4e 65 77 52 6f 74 3b 0d |rotator |NewRot;.|
|00001c80| 0a 09 6c 6f 63 61 6c 20 | 66 6c 6f 61 74 20 53 6d |..local |float Sm|
|00001c90| 6f 6f 74 68 52 6f 6c 6c | 3b 0d 0a 09 6c 6f 63 61 |oothRoll|;...loca|
|00001ca0| 6c 20 76 65 63 74 6f 72 | 20 4f 6c 64 56 65 6c 6f |l vector| OldVelo|
|00001cb0| 63 69 74 79 2c 20 58 2c | 59 2c 5a 3b 0d 0a 0d 0a |city, X,|Y,Z;....|
|00001cc0| 09 69 66 20 28 20 28 52 | 6f 6c 65 20 3d 3d 20 52 |.if ( (R|ole == R|
|00001cd0| 4f 4c 45 5f 41 75 74 68 | 6f 72 69 74 79 29 20 26 |OLE_Auth|ority) &|
|00001ce0| 26 20 28 47 75 69 64 65 | 72 2e 48 65 61 6c 74 68 |& (Guide|r.Health|
|00001cf0| 20 3c 3d 20 30 29 20 29 | 0d 0a 09 7b 0d 0a 09 09 | <= 0) )|...{....|
|00001d00| 45 78 70 6c 6f 64 65 28 | 4c 6f 63 61 74 69 6f 6e |Explode(|Location|
|00001d10| 2c 56 65 63 74 28 30 2c | 30 2c 31 29 29 3b 0d 0a |,Vect(0,|0,1));..|
|00001d20| 09 09 72 65 74 75 72 6e | 3b 0d 0a 09 7d 0d 0a 0d |..return|;...}...|
|00001d30| 0a 09 4f 6c 64 52 6f 6c | 6c 20 3d 20 52 6f 74 61 |..OldRol|l = Rota|
|00001d40| 74 69 6f 6e 2e 52 6f 6c | 6c 20 26 20 36 35 35 33 |tion.Rol|l & 6553|
|00001d50| 35 3b 0d 0a 09 4f 6c 64 | 56 65 6c 6f 63 69 74 79 |5;...Old|Velocity|
|00001d60| 20 3d 20 43 75 72 72 65 | 6e 74 56 65 6c 6f 63 69 | = Curre|ntVeloci|
|00001d70| 74 79 3b 0d 0a 09 56 65 | 6c 6f 63 69 74 79 20 3d |ty;...Ve|locity =|
|00001d80| 20 43 75 72 72 65 6e 74 | 56 65 6c 6f 63 69 74 79 | Current|Velocity|
|00001d90| 20 2b 20 56 65 63 74 6f | 72 28 47 75 69 64 65 52 | + Vecto|r(GuideR|
|00001da0| 6f 74 61 74 69 6f 6e 29 | 20 2a 20 31 35 30 30 20 |otation)| * 1500 |
|00001db0| 2a 20 44 65 6c 74 61 54 | 69 6d 65 3b 0d 0a 09 56 |* DeltaT|ime;...V|
|00001dc0| 65 6c 6f 63 69 74 79 20 | 3d 20 4e 6f 72 6d 61 6c |elocity |= Normal|
|00001dd0| 28 56 65 6c 6f 63 69 74 | 79 29 20 2a 20 35 35 30 |(Velocit|y) * 550|
|00001de0| 3b 0d 0a 09 4e 65 77 52 | 6f 74 20 3d 20 52 6f 74 |;...NewR|ot = Rot|
|00001df0| 61 74 6f 72 28 56 65 6c | 6f 63 69 74 79 29 3b 0d |ator(Vel|ocity);.|
|00001e00| 0a 0d 0a 09 2f 2f 20 52 | 6f 6c 6c 20 57 61 72 68 |....// R|oll Warh|
|00001e10| 65 61 64 20 62 61 73 65 | 64 20 6f 6e 20 61 63 63 |ead base|d on acc|
|00001e20| 65 6c 65 72 61 74 69 6f | 6e 0d 0a 09 47 65 74 41 |eleratio|n...GetA|
|00001e30| 78 65 73 28 4e 65 77 52 | 6f 74 2c 20 58 2c 59 2c |xes(NewR|ot, X,Y,|
|00001e40| 5a 29 3b 0d 0a 09 52 6f | 6c 6c 4d 61 67 20 3d 20 |Z);...Ro|llMag = |
|00001e50| 69 6e 74 28 31 30 20 2a | 20 28 59 20 44 6f 74 20 |int(10 *| (Y Dot |
|00001e60| 28 56 65 6c 6f 63 69 74 | 79 20 2d 20 4f 6c 64 56 |(Velocit|y - OldV|
|00001e70| 65 6c 6f 63 69 74 79 29 | 29 2f 44 65 6c 74 61 54 |elocity)|)/DeltaT|
|00001e80| 69 6d 65 29 3b 0d 0a 09 | 69 66 20 28 20 52 6f 6c |ime);...|if ( Rol|
|00001e90| 6c 4d 61 67 20 3e 20 30 | 20 29 20 0d 0a 09 09 4e |lMag > 0| ) ....N|
|00001ea0| 65 77 52 6f 74 2e 52 6f | 6c 6c 20 3d 20 4d 69 6e |ewRot.Ro|ll = Min|
|00001eb0| 28 31 32 30 30 30 2c 20 | 52 6f 6c 6c 4d 61 67 29 |(12000, |RollMag)|
|00001ec0| 3b 20 0d 0a 09 65 6c 73 | 65 0d 0a 09 09 4e 65 77 |; ...els|e....New|
|00001ed0| 52 6f 74 2e 52 6f 6c 6c | 20 3d 20 4d 61 78 28 35 |Rot.Roll| = Max(5|
|00001ee0| 33 35 33 35 2c 20 36 35 | 35 33 36 20 2b 20 52 6f |3535, 65|536 + Ro|
|00001ef0| 6c 6c 4d 61 67 29 3b 0d | 0a 0d 0a 09 2f 2f 73 6d |llMag);.|....//sm|
|00001f00| 6f 6f 74 68 6c 79 20 63 | 68 61 6e 67 65 20 72 6f |oothly c|hange ro|
|00001f10| 74 61 74 69 6f 6e 0d 0a | 09 69 66 20 28 4e 65 77 |tation..|.if (New|
|00001f20| 52 6f 74 2e 52 6f 6c 6c | 20 3e 20 33 32 37 36 38 |Rot.Roll| > 32768|
|00001f30| 29 0d 0a 09 7b 0d 0a 09 | 09 69 66 20 28 4f 6c 64 |)...{...|.if (Old|
|00001f40| 52 6f 6c 6c 20 3c 20 33 | 32 37 36 38 29 0d 0a 09 |Roll < 3|2768)...|
|00001f50| 09 09 4f 6c 64 52 6f 6c | 6c 20 2b 3d 20 36 35 35 |..OldRol|l += 655|
|00001f60| 33 36 3b 0d 0a 09 7d 0d | 0a 09 65 6c 73 65 20 69 |36;...}.|..else i|
|00001f70| 66 20 28 4f 6c 64 52 6f | 6c 6c 20 3e 20 33 32 37 |f (OldRo|ll > 327|
|00001f80| 36 38 29 0d 0a 09 09 4f | 6c 64 52 6f 6c 6c 20 2d |68)....O|ldRoll -|
|00001f90| 3d 20 36 35 35 33 36 3b | 0d 0a 0d 0a 09 53 6d 6f |= 65536;|.....Smo|
|00001fa0| 6f 74 68 52 6f 6c 6c 20 | 3d 20 46 4d 69 6e 28 31 |othRoll |= FMin(1|
|00001fb0| 2e 30 2c 20 35 2e 30 20 | 2a 20 64 65 6c 74 61 54 |.0, 5.0 |* deltaT|
|00001fc0| 69 6d 65 29 3b 0d 0a 09 | 4e 65 77 52 6f 74 2e 52 |ime);...|NewRot.R|
|00001fd0| 6f 6c 6c 20 3d 20 4e 65 | 77 52 6f 74 2e 52 6f 6c |oll = Ne|wRot.Rol|
|00001fe0| 6c 20 2a 20 53 6d 6f 6f | 74 68 52 6f 6c 6c 20 2b |l * Smoo|thRoll +|
|00001ff0| 20 4f 6c 64 52 6f 6c 6c | 20 2a 20 28 31 20 2d 20 | OldRoll| * (1 - |
|00002000| 53 6d 6f 6f 74 68 52 6f | 6c 6c 29 3b 0d 0a 09 53 |SmoothRo|ll);...S|
|00002010| 65 74 52 6f 74 61 74 69 | 6f 6e 28 4e 65 77 52 6f |etRotati|on(NewRo|
|00002020| 74 29 3b 0d 0a 0d 0a 09 | 69 66 20 28 20 28 4c 65 |t);.....|if ( (Le|
|00002030| 76 65 6c 2e 4e 65 74 4d | 6f 64 65 20 21 3d 20 4e |vel.NetM|ode != N|
|00002040| 4d 5f 53 74 61 6e 64 61 | 6c 6f 6e 65 29 0d 0a 09 |M_Standa|lone)...|
|00002050| 09 26 26 20 28 28 4c 65 | 76 65 6c 2e 4e 65 74 4d |.&& ((Le|vel.NetM|
|00002060| 6f 64 65 20 21 3d 20 4e | 4d 5f 4c 69 73 74 65 6e |ode != N|M_Listen|
|00002070| 53 65 72 76 65 72 29 20 | 7c 7c 20 28 49 6e 73 74 |Server) ||| (Inst|
|00002080| 69 67 61 74 6f 72 20 3d | 3d 20 4e 6f 6e 65 29 20 |igator =|= None) |
|00002090| 0d 0a 09 09 09 7c 7c 20 | 28 49 6e 73 74 69 67 61 |.....|| |(Instiga|
|000020a0| 74 6f 72 2e 49 73 41 28 | 27 50 6c 61 79 65 72 50 |tor.IsA(|'PlayerP|
|000020b0| 61 77 6e 27 29 20 26 26 | 20 28 50 6c 61 79 65 72 |awn') &&| (Player|
|000020c0| 50 61 77 6e 28 49 6e 73 | 74 69 67 61 74 6f 72 29 |Pawn(Ins|tigator)|
|000020d0| 2e 50 6c 61 79 65 72 20 | 21 3d 20 4e 6f 6e 65 29 |.Player |!= None)|
|000020e0| 0d 0a 09 09 09 09 26 26 | 20 28 56 69 65 77 50 6f |......&&| (ViewPo|
|000020f0| 72 74 28 50 6c 61 79 65 | 72 50 61 77 6e 28 49 6e |rt(Playe|rPawn(In|
|00002100| 73 74 69 67 61 74 6f 72 | 29 2e 50 6c 61 79 65 72 |stigator|).Player|
|00002110| 29 20 3d 3d 20 4e 6f 6e | 65 29 29 29 20 29 0d 0a |) == Non|e))) )..|
|00002120| 09 09 41 75 74 6f 6e 6f | 6d 6f 75 73 50 68 79 73 |..Autono|mousPhys|
|00002130| 69 63 73 28 44 65 6c 74 | 61 54 69 6d 65 29 3b 0d |ics(Delt|aTime);.|
|00002140| 0a 7d 0d 0a 0d 0a 73 69 | 6d 75 6c 61 74 65 64 20 |.}....si|mulated |
|00002150| 66 75 6e 63 74 69 6f 6e | 20 50 6f 73 74 52 65 6e |function| PostRen|
|00002160| 64 65 72 28 20 63 61 6e | 76 61 73 20 43 61 6e 76 |der( can|vas Canv|
|00002170| 61 73 20 29 0d 0a 7b 0d | 0a 09 6c 6f 63 61 6c 20 |as )..{.|..local |
|00002180| 66 6c 6f 61 74 20 44 69 | 73 74 3b 0d 0a 09 6c 6f |float Di|st;...lo|
|00002190| 63 61 6c 20 50 61 77 6e | 20 41 3b 0d 0a 09 6c 6f |cal Pawn| A;...lo|
|000021a0| 63 61 6c 20 69 6e 74 20 | 58 50 6f 73 2c 20 59 50 |cal int |XPos, YP|
|000021b0| 6f 73 3b 0d 0a 09 6c 6f | 63 61 6c 20 56 65 63 74 |os;...lo|cal Vect|
|000021c0| 6f 72 20 58 2c 59 2c 5a | 2c 20 44 69 72 3b 0d 0a |or X,Y,Z|, Dir;..|
|000021d0| 0d 0a 09 47 65 74 41 78 | 65 73 28 52 6f 74 61 74 |...GetAx|es(Rotat|
|000021e0| 69 6f 6e 2c 20 58 2c 59 | 2c 5a 29 3b 0d 0a 09 43 |ion, X,Y|,Z);...C|
|000021f0| 61 6e 76 61 73 2e 46 6f | 6e 74 20 3d 20 46 6f 6e |anvas.Fo|nt = Fon|
|00002200| 74 28 44 79 6e 61 6d 69 | 63 4c 6f 61 64 4f 62 6a |t(Dynami|cLoadObj|
|00002210| 65 63 74 28 22 4e 65 72 | 66 52 65 73 2e 54 69 6e |ect("Ner|fRes.Tin|
|00002220| 79 52 65 64 46 6f 6e 74 | 22 2c 20 63 6c 61 73 73 |yRedFont|", class|
|00002230| 27 46 6f 6e 74 27 29 29 | 3b 0d 0a 09 43 61 6e 76 |'Font'))|;...Canv|
|00002240| 61 73 2e 53 74 79 6c 65 | 20 3d 20 32 3b 0d 0a 09 |as.Style| = 2;...|
|00002250| 66 6f 72 65 61 63 68 20 | 56 69 73 69 62 6c 65 41 |foreach |VisibleA|
|00002260| 63 74 6f 72 73 28 63 6c | 61 73 73 27 50 61 77 6e |ctors(cl|ass'Pawn|
|00002270| 27 2c 20 41 2c 20 31 35 | 30 30 29 0d 0a 09 7b 0d |', A, 15|00)...{.|
|00002280| 0a 09 09 44 69 72 20 3d | 20 41 2e 4c 6f 63 61 74 |...Dir =| A.Locat|
|00002290| 69 6f 6e 20 2d 20 4c 6f | 63 61 74 69 6f 6e 3b 0d |ion - Lo|cation;.|
|000022a0| 0a 09 09 44 69 73 74 20 | 3d 20 56 53 69 7a 65 28 |...Dist |= VSize(|
|000022b0| 44 69 72 29 3b 0d 0a 09 | 09 44 69 72 20 3d 20 44 |Dir);...|.Dir = D|
|000022c0| 69 72 2f 44 69 73 74 3b | 0d 0a 09 09 69 66 20 28 |ir/Dist;|....if (|
|000022d0| 20 28 44 69 72 20 44 6f | 74 20 58 29 20 3e 20 30 | (Dir Do|t X) > 0|
|000022e0| 2e 37 20 29 0d 0a 09 09 | 7b 0d 0a 09 09 09 58 50 |.7 )....|{.....XP|
|000022f0| 6f 73 20 3d 20 30 2e 35 | 20 2a 20 43 61 6e 76 61 |os = 0.5| * Canva|
|00002300| 73 2e 43 6c 69 70 58 20 | 2a 20 28 31 20 2b 20 31 |s.ClipX |* (1 + 1|
|00002310| 2e 34 20 2a 20 28 44 69 | 72 20 44 6f 74 20 59 29 |.4 * (Di|r Dot Y)|
|00002320| 29 3b 0d 0a 09 09 09 59 | 50 6f 73 20 3d 20 30 2e |);.....Y|Pos = 0.|
|00002330| 35 20 2a 20 43 61 6e 76 | 61 73 2e 43 6c 69 70 59 |5 * Canv|as.ClipY|
|00002340| 20 2a 20 28 31 20 2d 20 | 31 2e 34 20 2a 20 28 44 | * (1 - |1.4 * (D|
|00002350| 69 72 20 44 6f 74 20 5a | 29 29 3b 0d 0a 09 09 09 |ir Dot Z|));.....|
|00002360| 43 61 6e 76 61 73 2e 53 | 65 74 50 6f 73 28 58 50 |Canvas.S|etPos(XP|
|00002370| 6f 73 20 2d 20 38 2c 20 | 59 50 6f 73 20 2d 20 38 |os - 8, |YPos - 8|
|00002380| 29 3b 0d 0a 09 09 09 43 | 61 6e 76 61 73 2e 44 72 |);.....C|anvas.Dr|
|00002390| 61 77 49 63 6f 6e 28 74 | 65 78 74 75 72 65 27 43 |awIcon(t|exture'C|
|000023a0| 72 6f 73 73 48 61 69 72 | 36 27 2c 20 31 2e 30 29 |rossHair|6', 1.0)|
|000023b0| 3b 0d 0a 09 09 09 43 61 | 6e 76 61 73 2e 53 65 74 |;.....Ca|nvas.Set|
|000023c0| 50 6f 73 28 58 70 6f 73 | 20 2d 20 31 32 2c 20 59 |Pos(Xpos| - 12, Y|
|000023d0| 50 6f 73 20 2b 20 38 29 | 3b 0d 0a 09 09 09 43 61 |Pos + 8)|;.....Ca|
|000023e0| 6e 76 61 73 2e 44 72 61 | 77 54 65 78 74 28 44 69 |nvas.Dra|wText(Di|
|000023f0| 73 74 2c 20 74 72 75 65 | 29 3b 0d 0a 09 09 7d 0d |st, true|);....}.|
|00002400| 0a 09 7d 09 0d 0a 09 43 | 61 6e 76 61 73 2e 53 74 |..}....C|anvas.St|
|00002410| 79 6c 65 20 3d 20 31 3b | 0d 0a 7d 09 09 0d 0a 0d |yle = 1;|..}.....|
|00002420| 0a 0d 0a 73 69 6d 75 6c | 61 74 65 64 20 66 75 6e |...simul|ated fun|
|00002430| 63 74 69 6f 6e 20 53 61 | 76 65 64 4d 6f 76 65 20 |ction Sa|vedMove |
|00002440| 47 65 74 46 72 65 65 4d | 6f 76 65 28 29 0d 0a 7b |GetFreeM|ove()..{|
|00002450| 0d 0a 09 6c 6f 63 61 6c | 20 53 61 76 65 64 4d 6f |...local| SavedMo|
|00002460| 76 65 20 73 3b 0d 0a 0d | 0a 09 69 66 20 28 20 46 |ve s;...|..if ( F|
|00002470| 72 65 65 4d 6f 76 65 73 | 20 3d 3d 20 4e 6f 6e 65 |reeMoves| == None|
|00002480| 20 29 0d 0a 09 09 72 65 | 74 75 72 6e 20 53 70 61 | )....re|turn Spa|
|00002490| 77 6e 28 63 6c 61 73 73 | 27 53 61 76 65 64 4d 6f |wn(class|'SavedMo|
|000024a0| 76 65 27 29 3b 0d 0a 09 | 65 6c 73 65 0d 0a 09 7b |ve');...|else...{|
|000024b0| 0d 0a 09 09 73 20 3d 20 | 46 72 65 65 4d 6f 76 65 |....s = |FreeMove|
|000024c0| 73 3b 0d 0a 09 09 46 72 | 65 65 4d 6f 76 65 73 20 |s;....Fr|eeMoves |
|000024d0| 3d 20 46 72 65 65 4d 6f | 76 65 73 2e 4e 65 78 74 |= FreeMo|ves.Next|
|000024e0| 4d 6f 76 65 3b 0d 0a 09 | 09 73 2e 4e 65 78 74 4d |Move;...|.s.NextM|
|000024f0| 6f 76 65 20 3d 20 4e 6f | 6e 65 3b 0d 0a 09 09 72 |ove = No|ne;....r|
|00002500| 65 74 75 72 6e 20 73 3b | 0d 0a 09 7d 09 0d 0a 7d |eturn s;|...}...}|
|00002510| 0d 0a 0d 0a 61 75 74 6f | 20 73 74 61 74 65 20 46 |....auto| state F|
|00002520| 6c 79 69 6e 67 0d 0a 7b | 0d 0a 0d 0a 09 73 69 6d |lying..{|.....sim|
|00002530| 75 6c 61 74 65 64 20 66 | 75 6e 63 74 69 6f 6e 20 |ulated f|unction |
|00002540| 48 69 74 57 61 6c 6c 20 | 28 76 65 63 74 6f 72 20 |HitWall |(vector |
|00002550| 48 69 74 4e 6f 72 6d 61 | 6c 2c 20 61 63 74 6f 72 |HitNorma|l, actor|
|00002560| 20 57 61 6c 6c 29 0d 0a | 09 7b 0d 0a 09 09 69 66 | Wall)..|.{....if|
|00002570| 20 28 20 62 43 61 6e 48 | 69 74 49 6e 73 74 69 67 | ( bCanH|itInstig|
|00002580| 61 74 6f 72 20 7c 7c 20 | 28 57 61 6c 6c 20 21 3d |ator || |(Wall !=|
|00002590| 20 49 6e 73 74 69 67 61 | 74 6f 72 29 20 29 20 0d | Instiga|tor) ) .|
|000025a0| 0a 09 09 09 45 78 70 6c | 6f 64 65 28 4c 6f 63 61 |....Expl|ode(Loca|
|000025b0| 74 69 6f 6e 2c 4e 6f 72 | 6d 61 6c 28 4c 6f 63 61 |tion,Nor|mal(Loca|
|000025c0| 74 69 6f 6e 2d 57 61 6c | 6c 2e 4c 6f 63 61 74 69 |tion-Wal|l.Locati|
|000025d0| 6f 6e 29 29 3b 0d 0a 09 | 7d 0d 0a 0d 0a 09 73 69 |on));...|}.....si|
|000025e0| 6d 75 6c 61 74 65 64 20 | 66 75 6e 63 74 69 6f 6e |mulated |function|
|000025f0| 20 50 72 6f 63 65 73 73 | 54 6f 75 63 68 20 28 41 | Process|Touch (A|
|00002600| 63 74 6f 72 20 4f 74 68 | 65 72 2c 20 56 65 63 74 |ctor Oth|er, Vect|
|00002610| 6f 72 20 48 69 74 4c 6f | 63 61 74 69 6f 6e 29 0d |or HitLo|cation).|
|00002620| 0a 09 7b 0d 0a 09 09 69 | 66 20 28 28 4f 74 68 65 |..{....i|f ((Othe|
|00002630| 72 20 21 3d 20 69 6e 73 | 74 69 67 61 74 6f 72 29 |r != ins|tigator)|
|00002640| 20 7c 7c 20 62 43 61 6e | 48 69 74 4f 77 6e 65 72 | || bCan|HitOwner|
|00002650| 29 20 0d 0a 09 09 09 45 | 78 70 6c 6f 64 65 28 48 |) .....E|xplode(H|
|00002660| 69 74 4c 6f 63 61 74 69 | 6f 6e 2c 4e 6f 72 6d 61 |itLocati|on,Norma|
|00002670| 6c 28 48 69 74 4c 6f 63 | 61 74 69 6f 6e 2d 4f 74 |l(HitLoc|ation-Ot|
|00002680| 68 65 72 2e 4c 6f 63 61 | 74 69 6f 6e 29 29 3b 0d |her.Loca|tion));.|
|00002690| 0a 09 7d 0d 0a 0d 0a 09 | 66 75 6e 63 74 69 6f 6e |..}.....|function|
|000026a0| 20 54 69 6d 65 72 28 29 | 0d 0a 09 7b 0d 0a 09 09 | Timer()|...{....|
|000026b0| 62 43 61 6e 48 69 74 4f | 77 6e 65 72 20 3d 20 54 |bCanHitO|wner = T|
|000026c0| 72 75 65 3b 0d 0a 09 7d | 0d 0a 0d 0a 09 66 75 6e |rue;...}|.....fun|
|000026d0| 63 74 69 6f 6e 20 42 65 | 67 69 6e 53 74 61 74 65 |ction Be|ginState|
|000026e0| 28 29 0d 0a 09 7b 0d 0a | 09 09 62 43 61 6e 48 69 |()...{..|..bCanHi|
|000026f0| 74 4f 77 6e 65 72 20 3d | 20 46 61 6c 73 65 3b 0d |tOwner =| False;.|
|00002700| 0a 09 09 47 75 69 64 65 | 64 52 6f 74 61 74 69 6f |...Guide|dRotatio|
|00002710| 6e 20 3d 20 52 6f 74 61 | 74 69 6f 6e 3b 0d 0a 09 |n = Rota|tion;...|
|00002720| 09 4f 6c 64 47 75 69 64 | 65 72 52 6f 74 61 74 69 |.OldGuid|erRotati|
|00002730| 6f 6e 20 3d 20 52 6f 74 | 61 74 69 6f 6e 3b 0d 0a |on = Rot|ation;..|
|00002740| 09 09 56 65 6c 6f 63 69 | 74 79 20 3d 20 73 70 65 |..Veloci|ty = spe|
|00002750| 65 64 2a 76 65 63 74 6f | 72 28 52 6f 74 61 74 69 |ed*vecto|r(Rotati|
|00002760| 6f 6e 29 3b 0d 0a 09 09 | 41 63 63 65 6c 65 72 61 |on);....|Accelera|
|00002770| 74 69 6f 6e 20 3d 20 76 | 65 63 74 28 30 2c 30 2c |tion = v|ect(0,0,|
|00002780| 30 29 3b 0d 0a 09 09 53 | 65 74 54 69 6d 65 72 28 |0);....S|etTimer(|
|00002790| 31 2e 30 2c 20 66 61 6c | 73 65 29 3b 0d 0a 09 09 |1.0, fal|se);....|
|000027a0| 69 66 20 28 20 28 4c 65 | 76 65 6c 2e 4e 65 74 4d |if ( (Le|vel.NetM|
|000027b0| 6f 64 65 20 21 3d 20 4e | 4d 5f 53 74 61 6e 64 61 |ode != N|M_Standa|
|000027c0| 6c 6f 6e 65 29 20 26 26 | 20 28 52 6f 6c 65 20 3d |lone) &&| (Role =|
|000027d0| 3d 20 52 4f 4c 45 5f 41 | 75 74 68 6f 72 69 74 79 |= ROLE_A|uthority|
|000027e0| 29 20 29 0d 0a 09 09 7b | 0d 0a 09 09 09 69 66 20 |) )....{|.....if |
|000027f0| 28 20 28 50 6c 61 79 65 | 72 50 61 77 6e 28 49 6e |( (Playe|rPawn(In|
|00002800| 73 74 69 67 61 74 6f 72 | 29 20 21 3d 20 4e 6f 6e |stigator|) != Non|
|00002810| 65 29 20 0d 0a 09 09 09 | 09 26 26 20 28 56 69 65 |e) .....|.&& (Vie|
|00002820| 77 50 6f 72 74 28 50 6c | 61 79 65 72 50 61 77 6e |wPort(Pl|ayerPawn|
|00002830| 28 49 6e 73 74 69 67 61 | 74 6f 72 29 2e 50 6c 61 |(Instiga|tor).Pla|
|00002840| 79 65 72 29 20 21 3d 20 | 4e 6f 6e 65 29 20 29 0d |yer) != |None) ).|
|00002850| 0a 09 09 09 09 52 65 6d | 6f 74 65 52 6f 6c 65 20 |.....Rem|oteRole |
|00002860| 3d 20 52 4f 4c 45 5f 53 | 69 6d 75 6c 61 74 65 64 |= ROLE_S|imulated|
|00002870| 50 72 6f 78 79 3b 0d 0a | 09 09 09 65 6c 73 65 0d |Proxy;..|...else.|
|00002880| 0a 09 09 09 09 52 65 6d | 6f 74 65 52 6f 6c 65 20 |.....Rem|oteRole |
|00002890| 3d 20 52 4f 4c 45 5f 41 | 75 74 6f 6e 6f 6d 6f 75 |= ROLE_A|utonomou|
|000028a0| 73 50 72 6f 78 79 3b 0d | 0a 09 09 7d 0d 0a 09 7d |sProxy;.|...}...}|
|000028b0| 0d 0a 7d 0d 0a 0d 0a 00 | |..}.....| |
+--------+-------------------------+-------------------------+--------+--------+